package psrc.logic.pages.representante;

import java.util.Arrays;
import java.util.List;

import psrc.logic.pages.base.ControllerBase;
import psrc.logic.util.Validador;
import psrc.logic.util.beans.RepresentanteBean;
import psrc.logic.util.beans.TipoRepresentante;

public class SendRepresentanteInsertController extends ControllerBase {
	
	private static final long serialVersionUID = 1L;
	
	private String nome;
	private String banco;
	private String agencia;
	private String contaCorrente;
	private String telefone1;
	private String telefone2;
	private String email;
	private List<String>  tipoRepresentante = Arrays.asList("direto", "preposto");
	

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getBanco() {
		return banco;
	}

	public void setBanco(String banco) {
		this.banco = banco;
	}

	public String getAgencia() {
		return agencia;
	}

	public void setAgencia(String agencia) {
		this.agencia = agencia;
	}

	public String getContaCorrente() {
		return contaCorrente;
	}

	public void setContaCorrente(String contaCorrente) {
		this.contaCorrente = contaCorrente;
	}

	public String getTelefone1() {
		return telefone1;
	}

	public void setTelefone1(String telefone1) {
		this.telefone1 = telefone1;
	}

	public String getTelefone2() {
		return telefone2;
	}

	public void setTelefone2(String telefone2) {
		this.telefone2 = telefone2;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public List<String> getTipoRepresentante() {
		return tipoRepresentante;
	}

	public void setTipoRepresentante(List<String> tipoRepresentante) {
		this.tipoRepresentante = tipoRepresentante;
	}

	@Override
	public String executeController() throws Exception {
		if(validar()){
			RepresentanteBean bean = new RepresentanteBean();
			bean.setAgencia(agencia);
			bean.setBanco(banco);
			bean.setContaCorrente(contaCorrente);
			bean.setEmail(email);
			bean.setNome(nome);
			bean.setTelefone1(telefone1);
			bean.setTelefone2(telefone2);
			bean.setTipoRepresentante(TipoRepresentante.valueOf(tipoRepresentante.get(0)));
			
			if (new RepresentanteModel().insert(bean)){
				addActionMessage(getText("representante.successful"));
			}
			return SUCCESS;
		} else {
			addActionError(getText("representante.error.incomplete"));
			return ERROR;
		}
	}

	private boolean validar() {
		boolean retorno = true;
		
		if(!Validador.validateName(nome, null, true))
			retorno = false;
		if(!Validador.validateName(banco, null, true))
			retorno = false;
		if(!Validador.validateNumber(agencia, true))
			retorno = false;
		if(!Validador.validateNumber(contaCorrente, true))
			retorno = false;
		if(!Validador.validateTelNumber(telefone1, true))
			retorno = false;
		if(!Validador.validateTelNumber(telefone2, false))
			retorno = false;
		if(!Validador.validateEmail(email, true))
			retorno = false;
		if(!Validador.validateName(tipoRepresentante.get(0), null, true))
			retorno = false;
		
		return retorno;
	}
}
